home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / mui / mui-tools / deft ii / sources / gui.em < prev    next >
Text File  |  1995-03-09  |  10KB  |  268 lines

  1. OPT MODULE
  2.  
  3.  
  4. /*/////////////////////////////////////////////////////////////////////////////
  5. ///////////////////////////////////////////////////////////// Macro files /////
  6. ///////////////////////////////////////////////////////////////////////////////
  7. MACROS 'MUI.pma'
  8. */
  9.  
  10.  
  11. ->*****
  12. ->** External modules
  13. ->*****
  14. MODULE 'libraries/mui'
  15. MODULE 'tools/boopsi' , 'tools/installhook'
  16. MODULE 'utility/tagitem' , 'utility/hooks'
  17.  
  18. MODULE '*Defs'
  19. MODULE '*GUI_MUIB'
  20. MODULE '*Work'
  21. MODULE '*PrefsFile'
  22. MODULE '*Paths'
  23. MODULE '*DefaultTools'
  24.  
  25.  
  26. ->*****
  27. ->** Global variables
  28. ->*****
  29. EXPORT DEF deftII                    :    PTR TO obj_app
  30. EXPORT DEF current_edited_path        :    LONG
  31. EXPORT DEF current_edited_def_tool    :    LONG
  32.  
  33.  
  34. /***************************/
  35. /* Initializes all the gui */
  36. /***************************/
  37. EXPORT PROC init_gui()
  38.  
  39.     DEF delete_path_hook            :    PTR TO hook
  40.     DEF edit_path_hook                :    PTR TO hook
  41.     DEF gui_add_path_hook            :    PTR TO hook
  42.     DEF app_add_path_hook            :    PTR TO hook
  43.     DEF delete_default_tool_hook    :    PTR TO hook
  44.     DEF edit_default_tool_hook        :    PTR TO hook
  45.     DEF gui_add_default_tool_hook    :    PTR TO hook
  46.     DEF app_add_default_tool_hook    :    PTR TO hook
  47.     DEF add_new_def_tool_hook        :    PTR TO hook
  48.     DEF app_add_new_def_tool_hook    :    PTR TO hook
  49.     DEF save_prefs_hook                :    PTR TO hook
  50.     DEF go_hook                        :    PTR TO hook
  51.  
  52.     NEW delete_path_hook            ,
  53.         edit_path_hook                ,
  54.         gui_add_path_hook            ,
  55.         app_add_path_hook            ,
  56.         delete_default_tool_hook    ,
  57.         edit_default_tool_hook        ,
  58.         gui_add_default_tool_hook    ,
  59.         app_add_default_tool_hook    ,
  60.         add_new_def_tool_hook        ,
  61.         app_add_new_def_tool_hook    ,
  62.         save_prefs_hook                ,
  63.         go_hook
  64.  
  65.     installhook(    delete_path_hook            ,    {gui_delete_path}        )
  66.     installhook(    edit_path_hook                ,    {edit_path}                )
  67.     installhook(    gui_add_path_hook            ,    {gui_add_path}            )
  68.     installhook(    app_add_path_hook            ,    {app_add_path}            )
  69.     installhook(    delete_default_tool_hook    ,    {delete_default_tool}    )
  70.     installhook(    edit_default_tool_hook        ,    {edit_default_tool}        )
  71.     installhook(    gui_add_default_tool_hook    ,    {gui_add_default_tool}    )
  72.     installhook(    app_add_default_tool_hook    ,    {app_add_default_tool}    )
  73.     installhook(    add_new_def_tool_hook        ,    {add_new_def_tool}        )
  74.     installhook(    app_add_new_def_tool_hook    ,    {app_add_new_def_tool}    )
  75.     installhook(    save_prefs_hook                ,    {gui_save_prefs}        )
  76.     installhook(    go_hook                        ,    {gui_go}                )
  77.  
  78.         /**********************************************************************/
  79.     domethod(    deftII.wi_main , [ MUIM_Notify , MUIA_Window_CloseRequest , MUI_TRUE ,
  80.                 deftII.app , 2 , MUIM_Application_ReturnID , MUIV_Application_ReturnID_Quit ] )
  81.  
  82.     domethod(    deftII.bt_quit , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  83.                 deftII.app , 2 , MUIM_Application_ReturnID , MUIV_Application_ReturnID_Quit ] )
  84.  
  85.     domethod(    deftII.bt_about , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  86.                 deftII.app , 2 , MUIM_Application_ReturnID , ID_BT_ABOUT ] )
  87.  
  88.     domethod(    deftII.bt_save_prefs , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  89.                 deftII.bt_save_prefs , 2 , MUIM_CallHook , save_prefs_hook ] )
  90.  
  91.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  92.                 deftII.gr_paths , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  93.  
  94.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  95.                 deftII.gr_default_tools , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  96.  
  97.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  98.                 deftII.bt_go , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  99.  
  100.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  101.                 deftII.bt_save_prefs , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  102.  
  103.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  104.                 deftII.bt_about , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  105.  
  106.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  107.                 deftII.bt_quit , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  108.  
  109.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  110.                 deftII.bt_go , 2 , MUIM_CallHook , go_hook ] )
  111.  
  112.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  113.                 deftII.gr_paths , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  114.  
  115.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  116.                 deftII.gr_default_tools , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  117.  
  118.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  119.                 deftII.bt_go , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  120.  
  121.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  122.                 deftII.bt_save_prefs , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  123.  
  124.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  125.                 deftII.bt_about , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  126.  
  127.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  128.                 deftII.bt_quit , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  129.  
  130.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  131.                 deftII.app , 2 , MUIM_Application_ReturnID , ID_BT_STOP ] )
  132.         /**********************************************************************/
  133.     domethod(    deftII.bt_delete_path , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  134.                 deftII.bt_delete_path , 2 , MUIM_CallHook , delete_path_hook ] )
  135.  
  136.     domethod(    deftII.lv_paths , [ MUIM_Notify , MUIA_Listview_DoubleClick , MUI_TRUE ,
  137.                 deftII.lv_paths , 2 , MUIM_CallHook , edit_path_hook ] )
  138.  
  139.     domethod(    deftII.stR_PA_path , [ MUIM_Notify , MUIA_String_Acknowledge , MUIV_EveryTime ,
  140.                 deftII.stR_PA_path , 2 , MUIM_CallHook , gui_add_path_hook ] ) 
  141.  
  142.     domethod(    deftII.gr_paths , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  143.                 deftII.gr_paths , 3 , MUIM_CallHook , app_add_path_hook , MUIV_TriggerValue ] )
  144.         /**********************************************************************/
  145.     domethod(    deftII.bt_delete_def_tool , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  146.                 deftII.bt_delete_def_tool , 2 , MUIM_CallHook , delete_default_tool_hook ] )
  147.  
  148.     domethod(    deftII.lv_default_tools , [ MUIM_Notify , MUIA_Listview_DoubleClick , MUI_TRUE ,
  149.                 deftII.lv_default_tools , 2 , MUIM_CallHook , edit_default_tool_hook ] )
  150.  
  151.     domethod(    deftII.stR_PO_new_def_tool , [ MUIM_Notify , MUIA_String_Acknowledge , MUIV_EveryTime ,
  152.                 deftII.stR_PO_new_def_tool , 2 , MUIM_CallHook , gui_add_default_tool_hook ] ) 
  153.  
  154.     domethod(    deftII.im_new_def_tool , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  155.                 deftII.im_new_def_tool , 2 , MUIM_CallHook , add_new_def_tool_hook ] )
  156.  
  157.     domethod(    deftII.lv_default_tools , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  158.                 deftII.lv_default_tools , 3 , MUIM_CallHook , app_add_default_tool_hook , MUIV_TriggerValue ] )
  159.  
  160.     domethod(    deftII.stR_old_def_tool , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  161.                 deftII.stR_old_def_tool , 3 , MUIM_CallHook , app_add_default_tool_hook , MUIV_TriggerValue ] )
  162.  
  163.     domethod(    deftII.stR_PO_new_def_tool , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  164.                 deftII.stR_PO_new_def_tool , 3 , MUIM_CallHook , app_add_new_def_tool_hook , MUIV_TriggerValue ] )
  165.  
  166.     domethod(    deftII.stR_old_def_tool , [ MUIM_Notify , MUIA_String_Acknowledge , MUIV_EveryTime ,
  167.                 deftII.wi_main , 3 , MUIM_Set , MUIA_Window_ActiveObject , deftII.stR_PO_new_def_tool ] )
  168.  
  169.     domethod(    deftII.lv_new_def_tools , [ MUIM_Notify , MUIA_Listview_DoubleClick , MUI_TRUE ,
  170.                 deftII.po_new_def_tool , 2 , MUIM_Popstring_Close , TRUE ] )
  171.         /**********************************************************************/
  172.  
  173.     domethod(    deftII.wi_main , [ MUIM_Window_SetCycleChain ,
  174.                                     deftII.lv_default_tools , deftII.bt_delete_def_tool ,
  175.                                     deftII.stR_old_def_tool , deftII.stR_PO_new_def_tool ,
  176.                                     deftII.lv_paths , deftII.stR_PA_path , deftII.bt_delete_path ,
  177.                                     deftII.bt_go , deftII.bt_stop , deftII.bt_save_prefs ,
  178.                                     deftII.bt_about , deftII.bt_quit , NIL ] )
  179.  
  180.     set( deftII.wi_main    , MUIA_Window_ID , IDEX_WI_MAIN )
  181.     set( deftII.wi_main , MUIA_Window_Open , MUI_TRUE )
  182.  
  183. ENDPROC
  184.  
  185.  
  186. /***********************************************/
  187. /* Adds a new (or edited) path to the listview */
  188. /***********************************************/
  189. PROC gui_add_path()
  190.  
  191.     DEF path_str : PTR TO CHAR
  192.  
  193.     IF current_edited_path = NO_CURRENT_EDITED_PATH
  194.  
  195.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.stR_PA_path )
  196.  
  197.     ELSE
  198.  
  199.         set( deftII.lv_paths , MUIA_List_Quiet , MUI_TRUE )
  200.         domethod( deftII.lv_paths , [ MUIM_List_Remove , current_edited_path ] )
  201.         set( deftII.lv_paths , MUIA_List_Quiet , FALSE )
  202.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.lv_paths )
  203.  
  204.     ENDIF
  205.  
  206.     get( deftII.stR_PA_path , MUIA_String_Contents , {path_str} )
  207.     add_path( path_str )
  208.  
  209. ENDPROC
  210.  
  211.  
  212. /*******************************************/
  213. /* Deletes the active path in the listview */
  214. /*******************************************/
  215. PROC gui_delete_path()
  216.  
  217.     set( deftII.lv_paths , MUIA_List_Quiet , MUI_TRUE )
  218.  
  219.     domethod( deftII.lv_paths , [ MUIM_List_Remove , MUIV_List_Remove_Active ] )
  220.     current_edited_path := NO_CURRENT_EDITED_PATH
  221.     set( deftII.stR_PA_path , MUIA_String_Contents , '' )
  222.  
  223.     set( deftII.lv_paths , MUIA_List_Quiet , FALSE )
  224.  
  225.     set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.lv_paths )
  226.  
  227. ENDPROC
  228.  
  229.  
  230. /*******************************************************/
  231. /* Adds a new (or edited) default tool to the listview */
  232. /*******************************************************/
  233. PROC gui_add_default_tool()
  234.  
  235.     DEF old_def_tool : PTR TO CHAR
  236.     DEF new_def_tool : PTR TO CHAR
  237.  
  238.     IF current_edited_def_tool = NO_CURRENT_EDITED_DEF_TOOL
  239.  
  240.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.stR_old_def_tool )
  241.  
  242.     ELSE
  243.  
  244.         set( deftII.lv_default_tools , MUIA_List_Quiet , MUI_TRUE )
  245.         domethod( deftII.lv_default_tools , [ MUIM_List_Remove , current_edited_def_tool ] )
  246.         set( deftII.lv_default_tools , MUIA_List_Quiet , FALSE )
  247.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.lv_default_tools )
  248.  
  249.     ENDIF
  250.  
  251.     get( deftII.stR_old_def_tool , MUIA_String_Contents , {old_def_tool} )
  252.     get( deftII.stR_PO_new_def_tool , MUIA_String_Contents , {new_def_tool} )
  253.     add_default_tool( old_def_tool , new_def_tool )
  254.  
  255. ENDPROC
  256.  
  257.  
  258. /*******************************************/
  259. /* Saves the preferences file from the gui */
  260. /*******************************************/
  261. PROC gui_save_prefs() IS save_prefs( TRUE )
  262.  
  263.  
  264. /***************************************************************************/
  265. /* The function which runs the icon default tool replacements from the gui */
  266. /***************************************************************************/
  267. PROC gui_go() IS go( TRUE )
  268.